package eu.irreality.dai.gameplay.actions;

import eu.irreality.dai.gameplay.entities.AliveEntity;
import eu.irreality.dai.gameplay.world.GameWorld;
import eu.irreality.dai.util.exceptions.GameException;
import eu.irreality.dai.util.exceptions.InternalErrorException;

/**
 * Root class for the hierarchy of actions that can be performed by a player.
 * 
 */
public abstract class Action
{

    protected GameWorld world;

    protected AliveEntity entity;

    protected int baseEnergyCost = 100;

    public Action(GameWorld world, AliveEntity entity)
    {
	this.world = world;
	this.entity = entity;
    }

    public abstract void execute() throws GameException, InternalErrorException;
}
